昨天講了怎麼把指令的結果存起來、也講了怎麼把指令的結果丟進去另一個指令的參數,也講過如何把一個指令的執行結果丟進另一個指令的 stdin
。為了示範怎麼把 stdout
也稍微介紹了 grep
指令。
今天來把 grep
指令寫完吧。
grep
指令,除了拿來接 stdin
以外,也可以拿來直接尋找檔案的特定字串,用法如下:
grep "dd-han" /etc/passwd
grep
指令除了可以找出特定一行,也可以找出幫忙標出行數,只要加上 -n
參數即可:
grep -n "Action" player.js
264: var snapshotAction = function() {
291: var videoErrorAction = function(event) {
327: var videoVolumechangeAction = function(event) {
346: var seekbarInputAction = function(event) {
351: var seekbarChangeAction = function(event) {
376: var videoLaddedmetadataAction = function(event) {
383: var videoTimeupdateAction = function(event) {
435: var videoProgressAction = function(event) {
440: var videoPlayAction = function(event) {
442: //playStatus.checkTimer = setInterval(checkTimerAction,100);
446: var videoPlayingAction = function(event) {
451: //playStatus.checkTimer = setInterval(checkTimerAction,100);
454: var videoPauseAction = function(event) {
458: var videoEndAction = function(event) {
469: var loadingAction = function() {
不過有時候找程式比較麻煩,不能只看那一行,會需要前後數行對照,那就這樣下指令吧:
grep -B 1 -A 5 -n "Action" player.js
263- // event actions (most private)
264: var snapshotAction = function() {
265- var currentFile = playlist[playStatus.playlistIndex];
266- var currentTime = DOMs.video.currentTime * 1000;
267- if (currentFile.isBlack) {
268- // show message by ZK
269- var totalResult = "black" + ",";
--
290- }
291: var videoErrorAction = function(event) {
292- // error code here: http://www.w3schools.com/tags/av_prop_error.asp
293- var error = event.target.error;
294- var browser = navigator.userAgent;
295- var fileURL = playlist[playStatus.playlistIndex].url;
296-
--
然後,下指令如果忘了怎麼打,在 Unix Like 系統「通常」都可以加上 --help
來查詢指令可以用的參數;在 Windows 系統下則是習慣加上 /?
來看指令可用參數。除了 --help
外,如果指令有寫說明書,你也可以用 man grep
來查看指令的說明書( Manual 縮寫 man )。
我是誰?
我是 dd-han ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。